package com.itheima.wisdomnext.controller;

import com.itheima.wisdomnext.entity.Like;
import com.itheima.wisdomnext.entity.Result.ResponseResult;
import com.itheima.wisdomnext.service.LikeService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;

@CrossOrigin // 允许跨域请求，前后端分离项目常用
@RestController // 标识该类是一个 RESTful 控制器，方法默认返回 JSON
@RequestMapping("/api/like") // 请求路径统一前缀为 /api/like
public class LikeController {

    @Autowired
    private LikeService likeService; // 注入点赞服务类

    /**
     * 添加点赞记录
     * 请求方式：POST
     * 请求路径：/api/like/add
     * 请求体参数：Like 对象，包含 userId 和 postId
     */
    @PostMapping("/add")
    public ResponseResult<Object> addLike(@RequestBody Like like) {
        likeService.addLike(like); // 调用服务方法添加点赞
        return ResponseResult.success("点赞成功", null);
    }

    /**
     * 移除点赞记录（取消点赞）
     * 请求方式：POST
     * 请求路径：/api/like/remove
     * 请求体参数：Like 对象，包含 userId 和 postId
     */
    @PostMapping("/remove")
    public ResponseResult<Object> removeLike(@RequestBody Like like) {
        likeService.removeLike(like); // 调用服务方法取消点赞
        return ResponseResult.success("取消点赞成功", null);
    }

    /**
     * 检查当前用户是否对某帖子已点赞
     * 请求方式：GET
     * 请求路径：/api/like/check
     */
    @GetMapping("/check")
    public ResponseResult<Object> checkIfLiked(@RequestBody Like like) {
        boolean liked = likeService.checkIfLiked(like); // 判断是否已点赞
        return ResponseResult.success(liked?"用户已点赞":"用户未点赞", null);
    }
}
